//
//  RootViewController.swift
//  夏祖强的新浪微博
//
//  Created by 夏祖强 on 16/5/11.
//  Copyright © 2016年 夏祖强. All rights reserved.
//

import UIKit

class RootViewController: UIViewController {
    
    //MARK: - 公共属性
    var userLogon = false
    //表格视图
    lazy var tableView = UITableView(frame: CGRectZero,style: .Plain)
    //下啦刷新
    lazy var refreshControl = UIRefreshControl()
    //上拉刷新
    lazy var pullupView = UIActivityIndicatorView(activityIndicatorStyle:UIActivityIndicatorViewStyle.Gray)
    //访客视图 - 如果用户登陆成功,不需要创建访客视图
    //如果使用懒加载,会在登录成功仍创建访客视图,照成无谓的内存开销
    var visitorView : VisitorView?
    
    //MARK: - 视图生命周期
    override func loadView() {
     
       userLogon ? setupTableView() : setupVisitorView()
        
//        setupRefreshControl()
        
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        loadData()
    }
    
    //加载数据
    func loadData(){
        
    
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

}
//MARK: - VisitorViewDelegate
extension RootViewController :VisitorViewDelegate{

    func vistiorViewDidRegister() {
        print("注册")
    }
    func vistiorViewDidLogin() {
        print("登陆")
    }
}
//MARK - 设置界面
extension RootViewController{

    //访客视图
    private func setupVisitorView(){
    
        visitorView = VisitorView()
        
        //设置代理
        visitorView?.delegate = self
        view = visitorView
        
        //设置状态栏按钮
        navigationItem.leftBarButtonItem = UIBarButtonItem(
        
            title: "注册",
            style: .Plain,
            target: self,
            action: #selector(RootViewController.vistiorViewDidRegister)
            )
        navigationItem.rightBarButtonItem = UIBarButtonItem(
                
                title: "登陆",
                style: .Plain,
                target: self,
                action: #selector(RootViewController.vistiorViewDidLogin)
        )
    }
    //设置表格视图
    private func setupTableView(){
        view = tableView
        
        //设置数据远
        tableView.dataSource = self
        tableView.delegate = self
    }
    //设置刷新控件
    func setupRefreshControl(){
        tableView.addSubview(refreshControl)
        //设置刷新控件的监听方法
        refreshControl.addTarget(self, action: #selector(RootViewController.loadData),forControlEvents: .ValueChanged)
        
        //设置上拉刷新视图
        tableView.tableFooterView = pullupView
    }
}

extension RootViewController: UITableViewDataSource,UITableViewDelegate{
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 0
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
     
        return UITableViewCell()
    }
    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        //判断数据源方法 最后一行
        let section = tableView.numberOfSections - 1
        let row = tableView.numberOfRowsInSection(section)-1
        
//        print("\(indexPath)\(section)\(row)")
        
        //判断数否是最后一行,同时没有正在上拉刷新
        if section == indexPath.section && row == indexPath.row && !pullupView.isAnimating(){
        print("上拉刷新")
            
            //启动菊花
            pullupView.startAnimating()
            //上拉刷新数据
            loadData()
        }
    }

}
